The present invention relates to a multi-processor system and a program version method therefor. More particularly, it relates to a disk controller comprising a multi-processor system including a plurality of processors and a control program upgrading method therefor.
In the multi-processor system, processing of a job may be efficiently conducted by dividing the job among a plurality of processors for processing. As one form of application of the multi-processor system, a disk controller of a multi-processor configuration has been put into practice. Such a disk controller is disclosed in JP-A-2-62623. In the disk controller disclosed in JP-A-2-62623, a job such as reading or writing of data is distributedly executed by a processor which controls data transfer between a disk controller and a host computer, and a processor which controls data transfer between the disk controller and a disk drive. Specifically, for example, data read from one disk drive by one processor is transferred to the host computer by another processor. Thus, the data transfer process between the host computer and the disk controller and the data transfer process between the disk drive and the disk controller may be executed in parallel and efficient data transfer may be attained.
In the disk controller of the multi-processor configuration described above, it is possible to stop the processing by some processors and continue the data transfer control by the other processors to maintain fault processors. However, in such a maintenance method, it is a premise that the processors which distributedly process a job execute the same version of a program. When versions of the program to be executed by the respective processors are to be upgraded and the maintenance is conducted in this manner, there occurs a period in which the programs of different versions co-exist and one job may be shared by the processors which execute the different versions of the program. In such a case, there may be no assurance of consistent processing of the job. As a result, when the versions of the program executed by the processors are to be upgraded, the system has to be wholly stopped.
It is an object of the present invention to solve the problem encountered in the prior art system and enable the maintenance processing such as upgrading versions of the program while continuing the processing by the system.
In order to achieve the above object, in the multi-processor system of the present invention, each processor belongs to one of a plurality of logical clusters. The system includes a cluster non-restricted mode in which the distributed processing of one job among processors belonging to any clusters is permitted, and a cluster restricted mode in which the distributed processing of one job among processors belonging to different clusters is restricted.
In a maintenance method of the present invention, in the multi-processor system described above, the cluster mode is shifted from the cluster non-restricted mode to the cluster restricted mode and a cluster is selected from the plurality of clusters. The acceptance of a new job in the selected cluster is inhibited and the maintenance processing such as the upgrading of the versions of the program in all of the processors in the selected cluster is conducted and the acceptance and processing of a new job among processors in the selected clusters is permitted again. The selection of the cluster and the maintenance processing are effected sequentially for each of the clusters, and after the maintenance processing has been completed for the processors of all clusters, the cluster mode is returned to the cluster non-restricted mode. During the maintenance of the processors in the selected cluster, the processors in the non-selected clusters are restricted to execute the processing of the job in the cluster restricted mode. In this manner, even if the processing of the job is continued by the processors which are not to be maintained during the maintenance of the system such as the upgrading of the versions of the program, the distributed processing of the job by the different versions of the program may be prevented and the maintenance process may be conducted without stopping the whole system.